package com.oa.admin.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.joneying.common.web.response.Resp;
import com.oa.admin.dto.OvertimeApplyAddDTO;
import com.oa.admin.dto.OvertimeApplyListDTO;
import com.oa.admin.entity.OvertimeApply;
import com.oa.admin.vo.OvertimeApplyListVO;
import com.oa.core.PageResult;
import com.oa.core.exception.BusinessException;
import com.oa.core.exception.DataIsEmptyException;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

public interface IOvertimeApplyService extends IService<OvertimeApply> {

    PageResult<OvertimeApplyListVO> findOvertimeApplyList(OvertimeApplyListDTO overtimeApplyListDTO);

    OvertimeApplyListVO findOvertimeApplyDetails(String id);

    Resp add(String userId, OvertimeApplyAddDTO overtimeApplyAddDTO) throws BusinessException;

    Resp audit(String id, String applyId, String remark, Integer status) throws DataIsEmptyException, BusinessException;

    void export(OvertimeApplyListDTO overtimeApplyListDTO, HttpServletResponse response);
}
